﻿using System;
using System.Collections.Generic;
using CMS.Core.Domain;

namespace CMS.Core.DataInterfaces
{
    /// <summary>
    /// Since this extends the <see cref="IDao{TypeOfListItem, IdT}" /> behavior, it's a good idea to 
    /// place it in its own file for manageability.  In this way, it can grow further without
    /// cluttering up <see cref="IDaoFactory" />.
    /// </summary>
    public interface IPhongBanDao : IDao<PhongBan, System.String>
    {
        /// <summary>
        /// Lấy số lớn nhất của trường số thứ tự cộng 1
        /// </summary>
        /// <returns></returns>
        byte GetMaxSTT();

        /// <summary>
        /// Lấy danh sách người sử dụng của phòng ban
        /// </summary>
        /// <param name="maPhongBan"></param>
        /// <returns></returns>
        List<NguoiSuDung> GetListNSDOfPhongBan(String maPhongBan);

        /// <summary>
        /// Lấy đối tượng phòng ban của trường tên hoặc viết tắt
        /// </summary>
        /// <param name="valueInput"></param>
        /// <returns></returns>
        //PhongBan GetPhongBanOfVietTat(string valueInput);

        /// <summary>
        /// Lấy tất cả các đối tượng đã được sắp xếp tăng dần theo trường ưu tiên
        /// </summary>
        /// <param name="TrangThai"></param>
        /// <returns></returns>
        List<PhongBan> GetAllHasOrderBy(bool TrangThai);

        /// <summary>
        /// Lấy người đại diện của phòng ban
        /// </summary>
        /// <param name="MaPhongBan"></param>
        /// <returns></returns>
        //NguoiSuDung GetNguoiDaiDienOfPhongBan(String MaPhongBan);
    }
}
